gboolean foreign_destroy)
{
GdkWaylandDisplay *display;
+ GdkFrameClock *frame_clock;
g_return_if_fail (GDK_IS_SURFACE (surface));
gdk_wayland_surface_hide_surface (surface);
+ frame_clock = gdk_surface_get_frame_clock (surface);
+ g_signal_handlers_disconnect_by_func (frame_clock, on_frame_clock_before_paint, surface);
+ g_signal_handlers_disconnect_by_func (frame_clock, on_frame_clock_after_paint, surface);
+
display = GDK_WAYLAND_DISPLAY (gdk_surface_get_display (surface));
display->toplevels = g_list_remove (display->toplevels, surface);
}